using System;
using System.Collections;

namespace PMG.model
{
	#region ANSWER

	/// <summary>
	/// ANSWER object for NHibernate mapped table 'ANSWER'.
	/// </summary>
	[Serializable]
	public class ANSWER
	{
		#region Member Variables
		
		protected int _id;
		protected int _aCCOUNTID;
		protected int _qUESTIONNAIREID;
		protected int _qUESTIONID;
		protected string _vAL;
		protected int _oPTIONID;
		protected string _lABEL;
		protected string _aNSWERTEXT;
		protected string _dESCRIPTION;
		protected string _cREATEBY;
		protected DateTime _cREATEDATE;
		protected string _lSTMODBY;
		protected string _lSTMODDATE;

		#endregion

		#region Constructors

		public ANSWER() { }

		public ANSWER( int aCCOUNTID, int qUESTIONNAIREID, int qUESTIONID, string vAL, int oPTIONID, string lABEL, string aNSWERTEXT, string dESCRIPTION, string cREATEBY, DateTime cREATEDATE, string lSTMODBY, string lSTMODDATE )
		{
			this._aCCOUNTID = aCCOUNTID;
			this._qUESTIONNAIREID = qUESTIONNAIREID;
			this._qUESTIONID = qUESTIONID;
			this._vAL = vAL;
			this._oPTIONID = oPTIONID;
			this._lABEL = lABEL;
			this._aNSWERTEXT = aNSWERTEXT;
			this._dESCRIPTION = dESCRIPTION;
			this._cREATEBY = cREATEBY;
			this._cREATEDATE = cREATEDATE;
			this._lSTMODBY = lSTMODBY;
			this._lSTMODDATE = lSTMODDATE;
		}

		#endregion

		#region Public Properties

		public int Id
		{
			get {return _id;}
			set {_id = value;}
		}

		public int ACCOUNTID
		{
			get { return _aCCOUNTID; }
			set { _aCCOUNTID = value; }
		}

		public int QUESTIONNAIREID
		{
			get { return _qUESTIONNAIREID; }
			set { _qUESTIONNAIREID = value; }
		}

		public int QUESTIONID
		{
			get { return _qUESTIONID; }
			set { _qUESTIONID = value; }
		}

		public string VAL
		{
			get { return _vAL; }
			set
			{
				if ( value != null && value.Length > 2000)
					throw new ArgumentOutOfRangeException("Invalid value for VAL", value, value.ToString());
				_vAL = value;
			}
		}

		public int OPTIONID
		{
			get { return _oPTIONID; }
			set { _oPTIONID = value; }
		}

		public string LABEL
		{
			get { return _lABEL; }
			set
			{
				if ( value != null && value.Length > 200)
					throw new ArgumentOutOfRangeException("Invalid value for LABEL", value, value.ToString());
				_lABEL = value;
			}
		}

		public string ANSWERTEXT
		{
			get { return _aNSWERTEXT; }
			set
			{
				if ( value != null && value.Length > 16)
					throw new ArgumentOutOfRangeException("Invalid value for ANSWERTEXT", value, value.ToString());
				_aNSWERTEXT = value;
			}
		}

		public string DESCRIPTION
		{
			get { return _dESCRIPTION; }
			set
			{
				if ( value != null && value.Length > 500)
					throw new ArgumentOutOfRangeException("Invalid value for DESCRIPTION", value, value.ToString());
				_dESCRIPTION = value;
			}
		}

		public string CREATEBY
		{
			get { return _cREATEBY; }
			set
			{
				if ( value != null && value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for CREATEBY", value, value.ToString());
				_cREATEBY = value;
			}
		}

		public DateTime CREATEDATE
		{
			get { return _cREATEDATE; }
			set { _cREATEDATE = value; }
		}

		public string LSTMODBY
		{
			get { return _lSTMODBY; }
			set
			{
				if ( value != null && value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for LSTMODBY", value, value.ToString());
				_lSTMODBY = value;
			}
		}

		public string LSTMODDATE
		{
			get { return _lSTMODDATE; }
			set
			{
				if ( value != null && value.Length > 20)
					throw new ArgumentOutOfRangeException("Invalid value for LSTMODDATE", value, value.ToString());
				_lSTMODDATE = value;
			}
		}

		

		#endregion
	}
	#endregion
}